Skip to content

Update evaluation reason for empty waterfall to DEFAULT instead of ERROR/GENERAL per REASON.9#11193

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits intomasterfrom
typo/ffe-reason-9-empty-allocs-default
Apr 29, 2026
Merged

Update evaluation reason for empty waterfall to DEFAULT instead of ERROR/GENERAL per REASON.9#11193
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits intomasterfrom
typo/ffe-reason-9-empty-allocs-default

Conversation

@typotter
Copy link
Copy Markdown
Contributor

@typotter typotter commented Apr 23, 2026

👀 see REASON RFC

Summary

Treats empty waterfall as valid state instead of an error.

  • Removes the early-exit guard that returned ErrorCode.GENERAL when flag.allocations was an empty list.
  • With the guard removed, the for loop at line 111 simply does not iterate, and execution falls through to the existing return DEFAULT at line 155.
  • Per ADR-001, an empty allocations waterfall is a platform data-invariant violation, not an SDK error. The SDK must return the coded default with reason=DEFAULT and no error code.

Behaviour change

Scenario Before After
flag.allocations is empty reason=ERROR, errorCode=GENERAL reason=DEFAULT, no error code
flag.allocations is null reason=ERROR, errorCode=GENERAL (explicit guard) reason=ERROR, errorCode=GENERAL (NPE caught by existing catch block)

Test plan

  • Unit tests covering evaluate() with an empty allocations list assert reason=DEFAULT and no error code.
  • Existing tests for the null-allocations path still pass (behaviour unchanged for null).

@typotter typotter added the tag: no release notes Changes to exclude from release notes label Apr 23, 2026
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Apr 23, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-9-empty-allocs-default
git_commit_date 1776961796 1777484768
git_commit_sha 9aedff2 f1be827
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~f1be8271d1
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1777486439 1777486439
ci_job_id 1643618773 1643618773
ci_pipeline_id 110524883 110524883
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-yddmyzia 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-yddmyzia 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 63 metrics, 8 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1055698
Total [baseline] (8.82 s) : 0, 8820041
Agent [candidate] (1.052 s) : 0, 1052400
Total [candidate] (8.802 s) : 0, 8802283
section iast
Agent [baseline] (1.23 s) : 0, 1230324
Total [baseline] (9.569 s) : 0, 9568746
Agent [candidate] (1.244 s) : 0, 1244116
Total [candidate] (9.563 s) : 0, 9563168
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent iast 1.23 s 174.626 ms (16.5%)
Total tracing 8.82 s -
Total iast 9.569 s 748.705 ms (8.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.052 s -
Agent iast 1.244 s 191.715 ms (18.2%)
Total tracing 8.802 s -
Total iast 9.563 s 760.885 ms (8.6%)
gantt
    title insecure-bank - break down per module: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.237 ms) : 0, 1237
crashtracking [candidate] (1.216 ms) : 0, 1216
BytebuddyAgent [baseline] (634.422 ms) : 0, 634422
BytebuddyAgent [candidate] (633.73 ms) : 0, 633730
AgentMeter [baseline] (29.417 ms) : 0, 29417
AgentMeter [candidate] (29.398 ms) : 0, 29398
GlobalTracer [baseline] (248.833 ms) : 0, 248833
GlobalTracer [candidate] (248.36 ms) : 0, 248360
AppSec [baseline] (32.657 ms) : 0, 32657
AppSec [candidate] (32.119 ms) : 0, 32119
Debugger [baseline] (60.088 ms) : 0, 60088
Debugger [candidate] (59.401 ms) : 0, 59401
Remote Config [baseline] (603.263 µs) : 0, 603
Remote Config [candidate] (597.908 µs) : 0, 598
Telemetry [baseline] (8.037 ms) : 0, 8037
Telemetry [candidate] (7.975 ms) : 0, 7975
Flare Poller [baseline] (4.326 ms) : 0, 4326
Flare Poller [candidate] (3.532 ms) : 0, 3532
section iast
crashtracking [baseline] (1.224 ms) : 0, 1224
crashtracking [candidate] (1.242 ms) : 0, 1242
BytebuddyAgent [baseline] (808.414 ms) : 0, 808414
BytebuddyAgent [candidate] (820.119 ms) : 0, 820119
AgentMeter [baseline] (11.334 ms) : 0, 11334
AgentMeter [candidate] (11.689 ms) : 0, 11689
GlobalTracer [baseline] (238.424 ms) : 0, 238424
GlobalTracer [candidate] (239.895 ms) : 0, 239895
AppSec [baseline] (29.551 ms) : 0, 29551
AppSec [candidate] (28.897 ms) : 0, 28897
Debugger [baseline] (66.8 ms) : 0, 66800
Debugger [candidate] (66.708 ms) : 0, 66708
Remote Config [baseline] (529.189 µs) : 0, 529
Remote Config [candidate] (531.319 µs) : 0, 531
Telemetry [baseline] (7.836 ms) : 0, 7836
Telemetry [candidate] (7.85 ms) : 0, 7850
Flare Poller [baseline] (3.47 ms) : 0, 3470
Flare Poller [candidate] (3.508 ms) : 0, 3508
IAST [baseline] (26.697 ms) : 0, 26697
IAST [candidate] (27.558 ms) : 0, 27558
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.065 s) : 0, 1064694
Total [baseline] (11.055 s) : 0, 11054650
Agent [candidate] (1.057 s) : 0, 1056507
Total [candidate] (10.985 s) : 0, 10984571
section appsec
Agent [baseline] (1.26 s) : 0, 1259790
Total [baseline] (11.095 s) : 0, 11095143
Agent [candidate] (1.259 s) : 0, 1259046
Total [candidate] (11.142 s) : 0, 11141532
section iast
Agent [baseline] (1.232 s) : 0, 1231744
Total [baseline] (11.3 s) : 0, 11300143
Agent [candidate] (1.233 s) : 0, 1233164
Total [candidate] (11.158 s) : 0, 11158335
section profiling
Agent [baseline] (1.193 s) : 0, 1192794
Total [baseline] (11.04 s) : 0, 11039695
Agent [candidate] (1.189 s) : 0, 1188773
Total [candidate] (10.976 s) : 0, 10976186
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.065 s -
Agent appsec 1.26 s 195.096 ms (18.3%)
Agent iast 1.232 s 167.05 ms (15.7%)
Agent profiling 1.193 s 128.1 ms (12.0%)
Total tracing 11.055 s -
Total appsec 11.095 s 40.494 ms (0.4%)
Total iast 11.3 s 245.494 ms (2.2%)
Total profiling 11.04 s -14.955 ms (-0.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent appsec 1.259 s 202.539 ms (19.2%)
Agent iast 1.233 s 176.657 ms (16.7%)
Agent profiling 1.189 s 132.267 ms (12.5%)
Total tracing 10.985 s -
Total appsec 11.142 s 156.961 ms (1.4%)
Total iast 11.158 s 173.764 ms (1.6%)
Total profiling 10.976 s -8.385 ms (-0.1%)
gantt
    title petclinic - break down per module: candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.25 ms) : 0, 1250
crashtracking [candidate] (1.238 ms) : 0, 1238
BytebuddyAgent [baseline] (640.608 ms) : 0, 640608
BytebuddyAgent [candidate] (633.995 ms) : 0, 633995
AgentMeter [baseline] (29.591 ms) : 0, 29591
AgentMeter [candidate] (29.387 ms) : 0, 29387
GlobalTracer [baseline] (250.489 ms) : 0, 250489
GlobalTracer [candidate] (249.111 ms) : 0, 249111
AppSec [baseline] (32.489 ms) : 0, 32489
AppSec [candidate] (32.437 ms) : 0, 32437
Debugger [baseline] (60.845 ms) : 0, 60845
Debugger [candidate] (60.446 ms) : 0, 60446
Remote Config [baseline] (609.865 µs) : 0, 610
Remote Config [candidate] (598.216 µs) : 0, 598
Telemetry [baseline] (8.127 ms) : 0, 8127
Telemetry [candidate] (8.047 ms) : 0, 8047
Flare Poller [baseline] (4.4 ms) : 0, 4400
Flare Poller [candidate] (5.178 ms) : 0, 5178
section appsec
crashtracking [baseline] (1.236 ms) : 0, 1236
crashtracking [candidate] (1.226 ms) : 0, 1226
BytebuddyAgent [baseline] (674.325 ms) : 0, 674325
BytebuddyAgent [candidate] (673.464 ms) : 0, 673464
AgentMeter [baseline] (12.234 ms) : 0, 12234
AgentMeter [candidate] (12.203 ms) : 0, 12203
GlobalTracer [baseline] (248.342 ms) : 0, 248342
GlobalTracer [candidate] (248.679 ms) : 0, 248679
AppSec [baseline] (186.793 ms) : 0, 186793
AppSec [candidate] (187.339 ms) : 0, 187339
Debugger [baseline] (64.638 ms) : 0, 64638
Debugger [candidate] (63.934 ms) : 0, 63934
Remote Config [baseline] (594.697 µs) : 0, 595
Remote Config [candidate] (568.204 µs) : 0, 568
Telemetry [baseline] (7.845 ms) : 0, 7845
Telemetry [candidate] (7.792 ms) : 0, 7792
Flare Poller [baseline] (3.42 ms) : 0, 3420
Flare Poller [candidate] (3.424 ms) : 0, 3424
IAST [baseline] (24.068 ms) : 0, 24068
IAST [candidate] (24.094 ms) : 0, 24094
section iast
crashtracking [baseline] (1.235 ms) : 0, 1235
crashtracking [candidate] (1.225 ms) : 0, 1225
BytebuddyAgent [baseline] (810.197 ms) : 0, 810197
BytebuddyAgent [candidate] (810.323 ms) : 0, 810323
AgentMeter [baseline] (11.37 ms) : 0, 11370
AgentMeter [candidate] (11.432 ms) : 0, 11432
GlobalTracer [baseline] (238.8 ms) : 0, 238800
GlobalTracer [candidate] (239.066 ms) : 0, 239066
AppSec [baseline] (27.411 ms) : 0, 27411
AppSec [candidate] (32.179 ms) : 0, 32179
Debugger [baseline] (65.061 ms) : 0, 65061
Debugger [candidate] (64.575 ms) : 0, 64575
Remote Config [baseline] (536.638 µs) : 0, 537
Remote Config [candidate] (527.668 µs) : 0, 528
Telemetry [baseline] (7.753 ms) : 0, 7753
Telemetry [candidate] (7.864 ms) : 0, 7864
Flare Poller [baseline] (3.409 ms) : 0, 3409
Flare Poller [candidate] (3.471 ms) : 0, 3471
IAST [baseline] (29.916 ms) : 0, 29916
IAST [candidate] (26.499 ms) : 0, 26499
section profiling
crashtracking [baseline] (1.227 ms) : 0, 1227
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (696.633 ms) : 0, 696633
BytebuddyAgent [candidate] (694.807 ms) : 0, 694807
AgentMeter [baseline] (8.934 ms) : 0, 8934
AgentMeter [candidate] (8.989 ms) : 0, 8989
GlobalTracer [baseline] (208.467 ms) : 0, 208467
GlobalTracer [candidate] (208.22 ms) : 0, 208220
AppSec [baseline] (32.854 ms) : 0, 32854
AppSec [candidate] (32.776 ms) : 0, 32776
Debugger [baseline] (66.08 ms) : 0, 66080
Debugger [candidate] (66.054 ms) : 0, 66054
Remote Config [baseline] (590.942 µs) : 0, 591
Remote Config [candidate] (568.561 µs) : 0, 569
Telemetry [baseline] (7.894 ms) : 0, 7894
Telemetry [candidate] (7.832 ms) : 0, 7832
Flare Poller [baseline] (3.514 ms) : 0, 3514
Flare Poller [candidate] (3.475 ms) : 0, 3475
ProfilingAgent [baseline] (94.308 ms) : 0, 94308
ProfilingAgent [candidate] (92.994 ms) : 0, 92994
Profiling [baseline] (94.885 ms) : 0, 94885
Profiling [candidate] (93.557 ms) : 0, 93557
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-9-empty-allocs-default
git_commit_date 1776961796 1777484768
git_commit_sha 9aedff2 f1be827
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~f1be8271d1
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1777487009 1777487009
ci_job_id 1643618775 1643618775
ci_pipeline_id 110524883 110524883
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-86395dcg 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-86395dcg 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 2 performance improvements and 2 performance regressions! Performance is the same for 17 metrics, 15 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:petclinic:iast:high_load better
[-1.707ms; -0.793ms] or [-9.095%; -4.225%]
better
[-2.467ms; -0.933ms] or [-8.151%; -3.082%]
unstable
[-11.390op/s; +43.703op/s] or [-4.630%; +17.765%]
17.521ms 28.564ms 262.156op/s 18.772ms 30.264ms 246.000op/s
scenario:load:petclinic:code_origins:high_load worse
[+0.669ms; +1.592ms] or [+3.775%; +8.984%]
worse
[+1.068ms; +2.545ms] or [+3.721%; +8.870%]
unstable
[-40.694op/s; +14.006op/s] or [-15.771%; +5.428%]
18.848ms 30.502ms 244.688op/s 17.717ms 28.695ms 258.031op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.24 ms) : 1228, 1252
.   : milestone, 1240,
iast (3.394 ms) : 3341, 3447
.   : milestone, 3394,
iast_FULL (5.998 ms) : 5937, 6059
.   : milestone, 5998,
iast_GLOBAL (3.579 ms) : 3526, 3633
.   : milestone, 3579,
profiling (2.27 ms) : 2248, 2292
.   : milestone, 2270,
tracing (1.884 ms) : 1869, 1899
.   : milestone, 1884,
section candidate
no_agent (1.27 ms) : 1257, 1282
.   : milestone, 1270,
iast (3.469 ms) : 3422, 3516
.   : milestone, 3469,
iast_FULL (5.933 ms) : 5874, 5991
.   : milestone, 5933,
iast_GLOBAL (3.767 ms) : 3698, 3836
.   : milestone, 3767,
profiling (2.39 ms) : 2367, 2412
.   : milestone, 2390,
tracing (1.954 ms) : 1937, 1971
.   : milestone, 1954,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.24 ms [1.228 ms, 1.252 ms] -
iast 3.394 ms [3.341 ms, 3.447 ms] 2.154 ms (173.7%)
iast_FULL 5.998 ms [5.937 ms, 6.059 ms] 4.758 ms (383.7%)
iast_GLOBAL 3.579 ms [3.526 ms, 3.633 ms] 2.339 ms (188.7%)
profiling 2.27 ms [2.248 ms, 2.292 ms] 1.03 ms (83.1%)
tracing 1.884 ms [1.869 ms, 1.899 ms] 644.142 µs (51.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.27 ms [1.257 ms, 1.282 ms] -
iast 3.469 ms [3.422 ms, 3.516 ms] 2.199 ms (173.2%)
iast_FULL 5.933 ms [5.874 ms, 5.991 ms] 4.663 ms (367.2%)
iast_GLOBAL 3.767 ms [3.698 ms, 3.836 ms] 2.497 ms (196.7%)
profiling 2.39 ms [2.367 ms, 2.412 ms] 1.12 ms (88.2%)
tracing 1.954 ms [1.937 ms, 1.971 ms] 684.063 µs (53.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.203 ms) : 18018, 18388
.   : milestone, 18203,
appsec (18.792 ms) : 18604, 18980
.   : milestone, 18792,
code_origins (18.082 ms) : 17905, 18259
.   : milestone, 18082,
iast (18.97 ms) : 18776, 19165
.   : milestone, 18970,
profiling (18.185 ms) : 18004, 18367
.   : milestone, 18185,
tracing (18.013 ms) : 17832, 18195
.   : milestone, 18013,
section candidate
no_agent (18.953 ms) : 18763, 19143
.   : milestone, 18953,
appsec (18.823 ms) : 18632, 19015
.   : milestone, 18823,
code_origins (19.075 ms) : 18880, 19270
.   : milestone, 19075,
iast (17.796 ms) : 17621, 17970
.   : milestone, 17796,
profiling (18.297 ms) : 18117, 18477
.   : milestone, 18297,
tracing (17.831 ms) : 17657, 18006
.   : milestone, 17831,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.203 ms [18.018 ms, 18.388 ms] -
appsec 18.792 ms [18.604 ms, 18.98 ms] 588.856 µs (3.2%)
code_origins 18.082 ms [17.905 ms, 18.259 ms] -121.002 µs (-0.7%)
iast 18.97 ms [18.776 ms, 19.165 ms] 767.472 µs (4.2%)
profiling 18.185 ms [18.004 ms, 18.367 ms] -17.427 µs (-0.1%)
tracing 18.013 ms [17.832 ms, 18.195 ms] -189.594 µs (-1.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.953 ms [18.763 ms, 19.143 ms] -
appsec 18.823 ms [18.632 ms, 19.015 ms] -129.546 µs (-0.7%)
code_origins 19.075 ms [18.88 ms, 19.27 ms] 121.915 µs (0.6%)
iast 17.796 ms [17.621 ms, 17.97 ms] -1.157 ms (-6.1%)
profiling 18.297 ms [18.117 ms, 18.477 ms] -656.333 µs (-3.5%)
tracing 17.831 ms [17.657 ms, 18.006 ms] -1.121 ms (-5.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master typo/ffe-reason-9-empty-allocs-default
git_commit_date 1776961796 1777484768
git_commit_sha 9aedff2 f1be827
release_version 1.62.0-SNAPSHOT~9aedff24d2 1.62.0-SNAPSHOT~f1be8271d1
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1777486605 1777486605
ci_job_id 1643618777 1643618777
ci_pipeline_id 110524883 110524883
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-ngn6vcyq 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-ngn6vcyq 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 1 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:dacapo:tomcat:appsec better
[-1.511ms; -1.152ms] or [-39.147%; -29.842%]
2.528ms 3.859ms
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.485 ms) : 1473, 1496
.   : milestone, 1485,
appsec (3.859 ms) : 3629, 4088
.   : milestone, 3859,
iast (2.267 ms) : 2198, 2337
.   : milestone, 2267,
iast_GLOBAL (2.313 ms) : 2243, 2383
.   : milestone, 2313,
profiling (2.517 ms) : 2351, 2684
.   : milestone, 2517,
tracing (2.071 ms) : 2017, 2124
.   : milestone, 2071,
section candidate
no_agent (1.484 ms) : 1472, 1496
.   : milestone, 1484,
appsec (2.528 ms) : 2473, 2582
.   : milestone, 2528,
iast (2.269 ms) : 2199, 2339
.   : milestone, 2269,
iast_GLOBAL (2.318 ms) : 2248, 2388
.   : milestone, 2318,
profiling (2.494 ms) : 2339, 2649
.   : milestone, 2494,
tracing (2.078 ms) : 2025, 2132
.   : milestone, 2078,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.485 ms [1.473 ms, 1.496 ms] -
appsec 3.859 ms [3.629 ms, 4.088 ms] 2.374 ms (159.9%)
iast 2.267 ms [2.198 ms, 2.337 ms] 782.867 µs (52.7%)
iast_GLOBAL 2.313 ms [2.243 ms, 2.383 ms] 828.083 µs (55.8%)
profiling 2.517 ms [2.351 ms, 2.684 ms] 1.033 ms (69.6%)
tracing 2.071 ms [2.017 ms, 2.124 ms] 586.162 µs (39.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.484 ms [1.472 ms, 1.496 ms] -
appsec 2.528 ms [2.473 ms, 2.582 ms] 1.044 ms (70.3%)
iast 2.269 ms [2.199 ms, 2.339 ms] 785.28 µs (52.9%)
iast_GLOBAL 2.318 ms [2.248 ms, 2.388 ms] 833.914 µs (56.2%)
profiling 2.494 ms [2.339 ms, 2.649 ms] 1.01 ms (68.1%)
tracing 2.078 ms [2.025 ms, 2.132 ms] 594.494 µs (40.1%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.62.0-SNAPSHOT~f1be8271d1, baseline=1.62.0-SNAPSHOT~9aedff24d2
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.649 s) : 15649000, 15649000
.   : milestone, 15649000,
appsec (14.752 s) : 14752000, 14752000
.   : milestone, 14752000,
iast (18.705 s) : 18705000, 18705000
.   : milestone, 18705000,
iast_GLOBAL (18.291 s) : 18291000, 18291000
.   : milestone, 18291000,
profiling (15.134 s) : 15134000, 15134000
.   : milestone, 15134000,
tracing (14.887 s) : 14887000, 14887000
.   : milestone, 14887000,
section candidate
no_agent (14.987 s) : 14987000, 14987000
.   : milestone, 14987000,
appsec (14.909 s) : 14909000, 14909000
.   : milestone, 14909000,
iast (18.408 s) : 18408000, 18408000
.   : milestone, 18408000,
iast_GLOBAL (17.86 s) : 17860000, 17860000
.   : milestone, 17860000,
profiling (15.515 s) : 15515000, 15515000
.   : milestone, 15515000,
tracing (14.752 s) : 14752000, 14752000
.   : milestone, 14752000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.649 s [15.649 s, 15.649 s] -
appsec 14.752 s [14.752 s, 14.752 s] -897.0 ms (-5.7%)
iast 18.705 s [18.705 s, 18.705 s] 3.056 s (19.5%)
iast_GLOBAL 18.291 s [18.291 s, 18.291 s] 2.642 s (16.9%)
profiling 15.134 s [15.134 s, 15.134 s] -515.0 ms (-3.3%)
tracing 14.887 s [14.887 s, 14.887 s] -762.0 ms (-4.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.987 s [14.987 s, 14.987 s] -
appsec 14.909 s [14.909 s, 14.909 s] -78.0 ms (-0.5%)
iast 18.408 s [18.408 s, 18.408 s] 3.421 s (22.8%)
iast_GLOBAL 17.86 s [17.86 s, 17.86 s] 2.873 s (19.2%)
profiling 15.515 s [15.515 s, 15.515 s] 528.0 ms (3.5%)
tracing 14.752 s [14.752 s, 14.752 s] -235.0 ms (-1.6%)

- DDEvaluator: add explicit null check for flag.allocations before the
  iteration loop. A null list throws NPE which gets swallowed as GENERAL;
  returning GENERAL explicitly with a clear message is safer and testable.
- DDEvaluatorTest.testNoAllocations: the empty-allocation case already
  falls through the for-loop to the DEFAULT return; the test was asserting
  ERROR/GENERAL which contradicts the fix. Update to assert DEFAULT with no
  error code.
@typotter typotter changed the title Fix REASON-9: empty allocations returns DEFAULT instead of GENERAL error Return DEFAULT instead of ERROR/GENERAL for empty flag waterfall Apr 28, 2026
@typotter typotter changed the title Return DEFAULT instead of ERROR/GENERAL for empty flag waterfall Update evaluation reason for empty waterfall to DEFAULT instead of ERROR/GENERAL per REASON.9 Apr 28, 2026
}
}

return ProviderEvaluation.<T>builder()
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the default return as required by the spec


if (isEmpty(flag.allocations)) {
return error(defaultValue, ErrorCode.GENERAL, "Missing allocations for flag " + flag.key);
if (flag.allocations == null) {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dropping the guard here lets us fall through to the default return below.
Open to adding a short circuit instead if that makes it more readable here.

@typotter typotter marked this pull request as ready for review April 28, 2026 21:47
@typotter typotter requested a review from a team as a code owner April 28, 2026 21:47
@typotter typotter requested review from leoromanovsky and sameerank and removed request for a team April 28, 2026 21:47
@typotter typotter enabled auto-merge April 29, 2026 17:46
@typotter typotter added this pull request to the merge queue Apr 29, 2026
@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts Bot commented Apr 29, 2026

/merge

@gh-worker-devflow-routing-ef8351
Copy link
Copy Markdown

gh-worker-devflow-routing-ef8351 Bot commented Apr 29, 2026

View all feedbacks in Devflow UI.

2026-04-29 18:40:22 UTC ℹ️ Start processing command /merge


2026-04-29 18:40:27 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in master is approximately 2h (p90).


2026-04-29 19:54:49 UTC ℹ️ MergeQueue: This merge request was merged

@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Apr 29, 2026
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit b7d0d04 into master Apr 29, 2026
574 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot deleted the typo/ffe-reason-9-empty-allocs-default branch April 29, 2026 19:54
@github-actions github-actions Bot added this to the 1.62.0 milestone Apr 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tag: no release notes Changes to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants